# urls.py (in your app directory)
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views

urlpatterns = [
    # path('products/', views.product_list, name='product_list'),
    # 登陆+注册+重置密码
    path('register/', views.register, name='register'),  # 注册
    path('login/', views.login, name='login'),  # 登录
    path('reset_password/', views.reset_password, name='reset_password'),  # 重置密码

    # 用户管理（用户列表）
    path('menu/', views.get_menu, name='get_menu'),  # 左侧菜单导航栏
    path('user/list/', views.user_list, name='user_list'),  # 获取用户列表
    path('user/<int:user_id>/state/<str:mg_state>/', views.update_user_state, name='update_user_state'),  # 修改用户状态state
    path('user/update/<int:user_id>/', views.update_user, name='update_user'),  # 修改用户接口
    path('user/delete/<int:user_id>/', views.delete_user, name='delete_user'),  # 删除用户接口
    path('add_user/', views.add_user, name='add_user'),  # 添加用户接口

    # 权限管理
    path('rights/list/', views.rights_list, name='rights_list'),  # 获取权限列表
    path('roles/', views.role_list_create, name='role_list_create'),
    path('roles/<int:pk>/', views.role_detail, name='role_detail'),  # 角色列表--编辑
    path('role/rights/<int:role_id>/', views.role_rights, name='role_rights'),  # 角色列表--分配权限，存储到数据库
    path('role/rights/<int:role_id>/<str:right_name>/', views.delete_role_right, name='delete_role_right'),
    # 点击小叉叉图标删除权限功能
    path('role/functions/<int:role_id>/', views.get_role_functions, name='get_role_functions'),  # 角色列表--获取数据库中的权限返回给前端
    path('role/functions/<int:role_id>/', views.get_role_functions, name='get_role_functions'),  # 角色列表--获取数据库中的权限返回给前端
    path('role/functions/all/', views.get_all_role_functions, name='get_all_role_functions'),  # 获取所有角色的权限功能名称
    path('role/add/', views.add_role, name='add_role'),  # 角色列表--添加角色
    path('role/expand/', views.role_expand, name='role_expand'),  # 角色expand扩展信息接口
    path('role/assign_functions/', views.assign_role_functions, name='assign_role_functions'),
    # 将角色身份分配给普通用户，例如将商家分配给普通用户
    path('role/list/', views.role_list, name='role_list'),  # 获取角色列表

    # 商品管理接口
    path('api/products/<int:pk>/', views.product_detail, name='product_detail'),  # 商品分类--返回、更新
    path('api/products/', views.product_list_create, name='product_list_create'),  # 商品分类--返回分类和商品列表、创建商品
    path('api/categories/delete/<int:id>/', views.delete_category, name='delete_category'),  # 商品分类--新增删除分类接口
    path('api/categories/add/', views.add_category, name='add_category'),  # 商品分类--新增添加分类接口
    path('api/edit-category/<int:category_id>/', views.edit_category, name='edit_category'),  # 编辑分类接口
    path('api/products/all/', views.all_products, name='all_products'),  # 商品列表--获取所有商品接口
    path('api/products/delete/<int:pk>/', views.delete_products, name='delete_products'),  # 商品列表--获取所有商品接口
    path('api/upload/', views.upload_image, name='upload_image'),  #图片上传接口
    path('api/products/update/<int:pk>/', views.update_product, name='update_product'),  # 编辑更新商品接口


    #订单管理
    path('api/order/list/', views.order_list, name='order_list'),  # 返回订单数据接口
    path('api/orders_address/<int:order_id>/', views.update_order_address, name='update_order_address'),  # 修改地址接口

    # 统计分析接口
    path('api/statistics/overview/', views.data_overview, name='data_overview'),  # 数据概览
    path('api/statistics/sales/', views.sales_statistics, name='sales_statistics'),  # 销售统计
    path('api/statistics/trend/', views.sales_trend, name='sales_trend'),  # 销售趋势
    path('api/statistics/products/', views.product_statistics, name='product_statistics'),  # 商品统计

    #------------------------下面可能是不需要的接口，最好别动--------------------------------------
    # 分类管理接口
    path('api/categories/', views.category_list_create, name='category_list_create'),
    path('api/categories/<int:pk>/', views.category_detail, name='category_detail'),
    # 订单管理接口
    path('api/orders/', views.order_list_create, name='order_list_create'),
    path('api/orders/<int:pk>/', views.order_detail, name='order_detail'),
    # 库存管理接口
    path('api/products/<int:pk>/stock/', views.update_stock, name='update_stock'),

    path('api/statistics/sales/', views.sales_statistics, name='sales_statistics'),
    path('api/admin/getUserInfo', views.get_user_info, name='get_user_info'),

    #-------------------------上面可能是不需要的接口，最好别动-------------------------------------

    # 前台接口：
    path('home/banner/', views.get_banner, name='get_banner'),  # 获取广告banner
    path('home/new/', views.get_new, name='get_new'),  # 获取新品推荐数据
    path('home/category/head/', views.get_category_head, name='get_category_head'),  # 获取首页分类头部数据
    path('api/categories/tree/', views.category_tree, name='category_tree'),
    path('login/refresh/', views.refresh_token, name='refresh_token'),
    path('member/cart/merge/', views.merge_cart, name='merge_cart'),  # 购物车合并接口
    path('member/cart/count/', views.get_cart_count, name='get_cart_count'),  # 获取购物车数量
    path('member/cart/', views.cart_operations, name='cart_operations'),  # 购物车操作（获取列表/添加商品/删除商品）
    path('member/cart/mutli/', views.get_cart_multi, name='get_cart_multi'),  # 获取购物车多商品列表
    path('member/cart/selected/', views.update_cart_selected, name='update_cart_selected'),  # 购物车商品选中状态更新
    path('member/cart/<str:id>/', views.update_cart_item, name='update_cart_item'),  # 修改购物车商品
    path('home/hot/', views.get_hot, name='get_hot'),  # 获取热门推荐数据
    path('home/goods/', views.get_home_goods, name='get_home_goods'),  # 获取首页商品数据
    path('category/', views.get_category_products, name='get_category_products'),  # 获取分类商品数据
    path('goods/', views.get_goods_detail, name='get_goods_detail'),  # 获取商品详情
    path('goods/hot', views.get_hot, name='get_goods_hot'),  # 获取热门商品推荐
    path('member/order/pre', views.get_order_preview, name='get_order_preview'),  # 生成订单(即填写订单或结算页)
    path('member/order', views.get_user_orders, name='get_user_orders'),  # 获取,创建，删除用户订单
    path('member/order/<int:order_id>', views.get_order_detail, name='get_order_detail'),  # 获取订单详情
    path('member/order/repurchase/<int:id>', views.repurchase_order, name='repurchase_order'),  # 订单再次购买
    path('member/order/consignment/<int:id>', views.consignment_order, name='consignment_order'),  # 订单发货
    path('member/order/<int:id>/cancel', views.cancel_order, name='cancel_order'),  # 取消订单
    path('member/order/<int:id>/receipt', views.receipt_order, name='receipt_order'),  # 确认收货
    path('member/order/<int:id>/logistics', views.get_order_logistics, name='get_order_logistics'),  # 查看物流

    
    path('member/address', views.address_operations, name='address_operations'),  # 地址操作接口(GET/POST)
    path('member/address/<int:id>', views.address_detail_operations, name='address_detail_operations'),  # 地址详情操作接口(PUT/DELETE)
    path('member/order/pre/now', views.get_order_preview_now, name='get_order_preview_now'),   #立即购买(即填写订单或结算页)
    path('goods/relevant', views.get_goods_relevant, name='get_goods_relevant'),  # 获取相关商品推荐
    path('search/all', views.search_all, name='search_all'),  #搜索-商品搜索-带筛选条件
    
]

# 添加媒体文件的路由/login/refresh
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)